// pages/proposal/my.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    searchKeyword: '',
    enterKeyword:'',
    listDTO: {},
    startDate: '',
    endDate: '',
    sortOptions: ['按提案提交时间倒序排列','按提案提交时间正序排列'],
    sortIndex:0,
    typeOptions: [
      '全部',
      '医疗健康类',
      '教育科技类',
      '文化体育类',
      '城市建设类',
      '环境保护类',
      '社会治理类',
      '经济发展类',
      '其他类'
    ],
    typeIndex:0,
    statusOptions: ['全部', '已完结', '处理中', '已驳回'],
    currentSort: '按提案提交时间倒序排列',
    currentType: '全部',
    currentStatus: '全部',
    pageNum: 1,
    toPage: 0,
    pages: 4,
    pageSize: 0,
    proposals: [],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 初始化加载第一页数据

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.loadProposals();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
   /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadProposals()
    setTimeout(() => {
      wx.stopPullDownRefresh()
      wx.showToast({
        title: '刷新成功',
        icon: 'success',
        duration: 1000
      })
    }, 1000)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  //搜索框文字的变化
  onInputChange(e) {
    this.setData({
      searchKeyword: e.detail.value
    })
  },
// 开始日期变化处理
onStartDateChange(e) {
  const startDate = e.detail.value;
  let { endDate } = this.data;
  
  // 如果结束日期已选择且早于新的开始日期，则将结束日期设置为开始日期
  if (endDate && endDate < startDate) {
    endDate = startDate;
  }
  this.setData({
    startDate,
    endDate
  });
  if(startDate!==null && endDate!==null) {
    this.loadProposals()
  }
},

// 结束日期变化处理
onEndDateChange(e) {
  const endDate = e.detail.value;
  const { startDate } = this.data;
  
  // 如果选择的结束日期早于开始日期，提示用户并不更新
  if (startDate && endDate < startDate) {
    wx.showToast({
      title: '结束日期不能早于开始日期',
      icon: 'none',
      duration: 2000
    });
    return;
  }
  
  this.setData({
    endDate
  });
  if(startDate!==null && endDate!==null) {
    this.loadProposals()
  }
},

  onSortChange(e) {
    this.setData({
       sortIndex:e.detail.value,
       pageNum:1
    })
    this.loadProposals()
  },

  onTypeChange(e) {
    this.setData({
      typeIndex:e.detail.value,
      pageNum:1
    })
    this.loadProposals()
  },

  // 分页相关方法
  onPrevPage() {
    if(this.data.pageNum > 1) {
      this.setData({
        pageNum:this.data.pageNum - 1
      })
      this.loadProposals()
    }
  },

  onNextPage() {
    if(this.data.pageNum < this.data.pages) {
      this.setData({
        pageNum:this.data.pageNum + 1
      })
      this.loadProposals()
    }
  },

  onPageInput(e) {
    const page = parseInt(e.detail.value);
    if (page >= 1 && page <= this.data.pages) {
      this.setData({
        toPage: page
      });
    }
  },

  // 加载提案数据
  loadProposals() {
    const app = getApp()
    var dto = {
      orderDirection:this.data.sortOptions[this.data.sortIndex],
      proposalType:this.data.typeOptions[this.data.typeIndex],
      pageNum:this.data.pageNum,
      proposalName:this.data.enterKeyword,
      startTime:this.data.startDate,
      endTime:this.data.endDate
    }
    app.proposalRequest.mysignRequest(dto).then(res => {
      const data = res.data;
      console.log(data)
      this.setData({
        proposals: data.data.list,
        pages: data.data.pages,
        pageNum: data.data.pageNum
      })
    })
  },

  onConfirmSearch() {
    this.setData({
      pageNum:1,
      enterKeyword:this.data.searchKeyword
    })
    this.loadProposals()
  },

  onPageSearch(e) {
    this.setData({
      pageNum:this.data.toPage
    })
    this.loadProposals()
  },

  goDetail: function (event) {
    const item = event.currentTarget.dataset.item;
    wx.navigateTo({
      url: './consignDetail?item=' + JSON.stringify(item)
    })
  },
    // 处理分页变化
handlePageChange(e) {
  const { pageNum } = e.detail;
  this.setData({
    pageNum
  });
  this.loadProposals();
},
  
})